﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace App.Utility.ComEntity
{
    /**********************项目中所有枚举 不要用0值 ***********************/

    #region 系统框架

    ///// <summary>
    ///// 子系统 平台
    ///// </summary>
    //public enum SysPlatform
    //{
    //    [Description("未选择")]
    //    SP_未选择 = 0,
    //    [Description("基础平台")]
    //    SP_基础平台 = 1,
    //    [Description("一卡通")]
    //    SP_一卡通 = 2,
    //}

    /// <summary>
    /// 系统配置类型
    /// </summary>
    public enum SysParamType
    {
        [Description("数据库连接")]
        SP_db连接 = 1,
        [Description("队列配置")]
        SP_队列配置 = 2,
        [Description("缓存配置")]
        SP_缓存配置 = 3,
        [Description("文件服务")]
        SP_文件服务 = 4,
        [Description("微信配置")]
        SP_微信配置 = 5,
        [Description("支付宝配置")]
        SP_支付宝配置 = 6,
    }

    /// <summary>
    /// 微信支付类型
    /// </summary>
    public enum WXPayType
    {
        [Description("扫码支付")]
        WT_扫码支付 = 1,

    }

    /// <summary>
    /// 微信支付状态
    /// </summary>
    public enum WXPayStatus
    {
        [Description("创建内部订单成功")]
        WS_创建内部订单成功 = 1,
        [Description("微信下单成功待支付")]
        WS_微信下单成功待支付 = 2,
        [Description("微信下单失败")]
        WS_微信下单失败 = 3,
        [Description("微信支付成功")]
        WS_微信支付成功 = 4,
        [Description("微信支付失败")]
        WS_微信支付失败 = 5,
    }

    /// <summary>
    /// 微信支付业务类型
    /// </summary>
    public enum WXPayBusinessType
    {
        [Description("一卡通充值")]
        WBT_一卡通充值 = 1,

    }


    #endregion

    #region 队列通道

    /// <summary>
    /// 队列类型 根据此枚举获取队列名
    /// </summary>
    public enum RabbitQueue
    {
        /// <summary>
        /// 类似log4net日志 实体对应RLogNormal
        /// </summary>
        [Description("Com.Log.Normal")]
        L_常规 = 0,
        /// <summary>
        /// 管理系统接口请求情况  实体对应RLogRequest
        /// </summary>
        [Description("Com.Log.Request")]
        L_请求 = 1,
        /// <summary>
        /// 业务操作日志  实体对应RLogBehavior
        /// </summary>
        [Description("Com.Log.Behavior")]
        L_业务行为 = 2,

        //[Description("Com.Crm.Api.Visit")]
        //日志_CRM主接口_访问 = 3,
        //[Description("Com.Crm.Api.Modifiy")]
        //日志_CRM主接口_操作修改 = 4,
        //[Description("Com.Crm.Wechat.Visit")]
        //日志_微信端_访问 = 6,
        //[Description("Com.Crm.Wechat.Modifiy")]
        //日志_微信端_操作日志 = 7,
        //[Description("Com.Handle.SignActivity")]
        //事务_会员参加活动后续处理 = 12,
        //[Description("Com.Coupon.Modifiy")]
        //日志_卡券基础信息变更 = 13,
        //[Description("Com.Handle.BuyPointGoods")]
        //事务_会员购买积分商品后续处理 = 14,
        //[Description("Com.JobKettle")]
        //日志_JobKettle任务 = 15,
        //[Description("Com.JS.Log")]
        //日志_前端JS日志信息 = 16,
        //[Description("Com.Hadoop.MemberAttr")]
        //日志_会员标签计算 = 17,
        //[Description("Com.Crm.Merchant.Visit")]
        //日志_商户端_访问 = 18,
        //[Description("Com.Crm.Merchant.Modifiy")]
        //日志_商户端_操作日志 = 19

    }

    #endregion

    #region 请求响应
    /// <summary>
    /// 请求响应状态码
    /// </summary>
    public enum RespCode
    {
        [Description("程序异常")]
        E_程序异常 = 500,
        [Description("许可证失效")]
        E_许可证异常 = 510,

        #region 普通操作
        //--------------------------------------------
        //------------------用户普通操作返回--------------------
        //--------------------------------------------
        [Description("操作成功")]
        OP_操作成功 = 0,
        [Description("操作失败")]
        OP_操作失败 = 1,
        [Description("参数异常")]
        OP_参数异常 = 2,
        [Description("未找到对象")]
        OP_未找到对象 = 3,
        [Description("参数验证失败")]
        OP_参数验证失败 = 4,
        [Description("输入Json与模型要求不一致")]
        OP_输入Json与模型要求不一致 = 5,
        [Description("已有同名数据,请避免数据重复")]
        OP_已有同名参数 = 6,
        [Description("条件判断未通过，刷新重试")]
        OP_条件判断未通过 = 7,
        [Description("当前对象为失效或者禁用状态")]
        OP_当前对象失效 = 8,
        [Description("A_操作失败_不弹框")]
        OP_操作失败_不弹框 = 9,
        [Description("参数验证失败，当前参数下没有数据")]
        OP_当前条件下没有数据 = 10,
        [Description("非法操作")]
        OP_非法操作 = 11,
        #endregion

        #region 用户
        //--------------------------------------------
        //------------------用户登录状态判断--------------------
        //--------------------------------------------
        [Description("RefreshToken失效")]
        UL_RefreshToken失效 = 99,
        [Description("未登录")]
        UL_未登录 = 100,
        [Description("会话超时")]
        UL_会话超时 = 101,
        [Description("Token失效")]
        UL_Token失效 = 102,
        [Description("用户名和密码均不可为空")]
        UL_用户名和密码均不可为空 = 103,
        [Description("用户名不存在,请重新输入")]
        UL_用户名不存在 = 104,
        [Description("用户名或者密码错误,请重新输入")]
        UL_用户名或者密码错误 = 105,
        [Description("账户被禁用,或已删除")]
        UL_账户被禁用或已删除 = 106,
        [Description("请选择子系统")]
        UL_请选择子系统 = 107,
        [Description("您没有登录子系统访问权限！")]
        UL_没有登录子系统 = 108,
        [Description("获取用户合作方列表失败")]
        UL_获取用户合作方列表失败 = 109,
        #endregion

        #region 权限
        //--------------------------------------------
        //----------------用户操作权限判断---------------
        //--------------------------------------------
        [Description("未找到对应权限,访问路径异常")]
        UA_未找到对应权限 = 110,
        [Description("没有权限进行该模块操作")]
        UA_没有权限进行该模块操作 = 111,
        [Description("没有该操作需要的权限")]
        UA_没有该操作需要的权限 = 112,
        [Description("权限不足以执行此操作")]
        UA_权限不足以执行此操作 = 113,
        [Description("登录账号性质不允许进行此操作")]
        UA_登录账号性质不允许进行此操作 = 114,
        [Description("加载用户权限集失败")]
        UA_加载用户权限集失败 = 115,
        #endregion

    }


    #region Web请求方法
    /// <summary>
    /// Web请求方法
    /// </summary>
    public enum WebMethod
    {
        [Description("Get方法")]
        Get = 1,
        [Description("Post方法")]
        Post = 2,
        [Description("Put方法")]
        Put = 3,
        [Description("Delete方法")]
        Delete = 4,
        [Description("Options方法")]
        Options = 5
    }
    #endregion

    #endregion

    #region 日志

    public enum LogLevel
    {
        [Description("信息")]
        Info = 1,
        [Description("调试")]
        Debug = 2,
        [Description("警告")]
        Warn = 3,
        [Description("异常")]
        Error = 4,
        //[Description("毁灭")]
        //Fatal = 5,
    }

    #endregion

    #region 短信

    //#region //短信优先级别
    ///// <summary>
    ///// 短信优先级别
    ///// </summary>
    //public enum SmsPriority
    //{
    //    [Description("普通")]
    //    普通 = 1,
    //    [Description("加急")]
    //    加急 = 2,
    //    [Description("最优先")]
    //    最优先 = 3
    //}

    //#endregion

    //#region //短信类型

    //public enum SMSType
    //{
    //    [Description("验证码")]
    //    验证码 = 1,
    //    [Description("FTP异常")]
    //    FTP异常 = 2,
    //    [Description("系统通知")]
    //    系统通知 = 3
    //}
    //#endregion

    //#region //单条短信发送状态
    //public enum SmsSendStatus
    //{
    //    [Description("未发送")]
    //    未发送 = 1,
    //    [Description("已发送")]
    //    已发送 = 2,
    //    [Description("发送失败")]
    //    发送失败 = 3,
    //    [Description("验证不通过")]
    //    验证不通过 = 4
    //}

    //#endregion

    //#region //短信任务发送状态
    ///// <summary>
    ///// 短信发送任务状态
    ///// </summary>
    //public enum SmsJobStatus
    //{
    //    [Description("未开始")]
    //    未开始 = 1,
    //    [Description("排队中")]
    //    排队中 = 2,
    //    [Description("已进入队列")]
    //    已进入队列 = 3,
    //    [Description("正在发送")]
    //    正在发送 = 4,
    //    [Description("发送结束")]
    //    发送结束 = 5,
    //    [Description("发送取消")]
    //    发送取消 = 6
    //}
    //#endregion

    //#region 短信发送记录

    //public class LogSMSEntity
    //{
    //    public string Program { get; set; }
    //    public string ThreadName { get; set; }
    //    public LogLevel Level { get; set; }
    //    public LogSMSDetail Body { get; set; }
    //    public DateTime Time { get; set; }
    //}



    //public class LogSMSDetail
    //{
    //    public string Reason { get; set; }
    //    public string API { get; set; }
    //    public string Encode { get; set; }
    //    public string Result { get; set; }
    //    public bool Success { get; set; }
    //    public string Phone { get; set; }
    //    public string SMSBody { get; set; }
    //    public DateTime CreateTime { get; set; }
    //}
    //#endregion

    #endregion

    #region 支付方式

    /// <summary>
    /// 支付方式
    /// </summary>
    public enum PayType
    {
        [Description("微信支付")]
        微信支付 = 1,
        [Description("支付宝支付")]
        支付宝支付 = 2
    }

    #endregion

    #region 人物相关

    //#region //是否认证
    //public enum IsChecked
    //{
    //    [Description("全部")]
    //    全部 = 0,
    //    [Description("已认证")]
    //    已认证 = 1,
    //    [Description("未认证")]
    //    未认证 = 2
    //}

    //#endregion

    #region 性别

    /// <summary>
    /// 性别
    /// </summary>
    public enum EnumGender
    {

        [Description("男")]
        男 = 1,
        [Description("女")]
        女 = 2,
        [Description("未知")]
        未知 = 0,
    }

    /// <summary>
    /// 微信性别称谓
    /// </summary>
    public enum EnumGenderTitle
    {

        [Description("先生")]
        先生 = 1,
        [Description("女士")]
        女士 = 2,
        [Description("未知")]
        未知 = 0,
    }

    #endregion

    #region 证件类型
    /// <summary>
    /// 证件类型
    /// </summary>
    public enum EnumCardType
    {
        [Description("身份证")]
        身份证 = 1,
        [Description("军官证")]
        军官证 = 2,
        [Description("学生证")]
        学生证 = 3,
        [Description("护照")]
        护照 = 4,
        [Description("结婚证")]
        结婚证 = 5,
        [Description("驾驶证")]
        驾驶证 = 6,
        [Description("港澳同胞来往大陆通行证")]
        港澳同胞来往大陆通行证 = 7,
        [Description("其他")]
        其他 = 8

    }
    #endregion

    #region 婚姻状况

    /// <summary>
    /// 婚姻状况
    /// </summary>
    public enum EnumMarryStatus
    {
        [Description("未知")]
        未知 = 1,
        [Description("未婚")]
        未婚 = 2,
        [Description("已婚")]
        已婚 = 3,
        [Description("已婚")]
        离婚 = 3
    }

    #endregion

    //#region //生育状况

    ///// <summary>
    ///// 是否有小孩
    ///// </summary>
    //public enum Member_KidsStatus
    //{
    //    [Description("未知")]
    //    未知 = 1,
    //    [Description("有")]
    //    有 = 2,
    //    [Description("没有")]
    //    没有 = 3
    //}

    //#endregion

    //#region //收入状况
    ///// <summary>
    ///// 收入状况
    ///// </summary>
    //public enum Member_IncomeStatus
    //{
    //    [Description("未知")]
    //    未知 = 1,
    //    [Description("2000元以下")]
    //    两千以下 = 2,
    //    [Description("2000-3999元")]
    //    两到四千 = 3,
    //    [Description("4000-5999元")]
    //    四到六千 = 4,
    //    [Description("6000-7999元")]
    //    六到八千 = 5,
    //    [Description("8000元以上")]
    //    八千以上 = 6

    //}
    //#endregion

    //#region //接受短信状态
    //public enum MessageStatus
    //{
    //    [Description("未知")]
    //    未知 = 0,
    //    [Description("愿意")]
    //    愿意 = 1,
    //    [Description("不愿意")]
    //    不愿意 = 2
    //}

    //#endregion

    //#region //教育程度

    ///// <summary>
    ///// 教育程度
    ///// </summary>
    //public enum Member_EduLevel
    //{
    //    [Description("未知")]
    //    未知 = 1,
    //    [Description("初中")]
    //    初中 = 2,
    //    [Description("高中")]
    //    高中 = 3,
    //    [Description("中专")]
    //    中专 = 4,
    //    [Description("大专")]
    //    大专 = 5,
    //    [Description("本科")]
    //    本科 = 6,
    //    [Description("硕士")]
    //    硕士 = 7,
    //    [Description("博士")]
    //    博士 = 8,
    //    [Description("其他")]
    //    其他 = 9
    //}

    //#endregion

    //#region //出行方式

    ///// <summary>
    ///// 出行方式
    ///// </summary>
    //public enum TripMode
    //{
    //    [Description("未知")]
    //    未知 = 0,
    //    [Description("自驾")]
    //    自驾 = 1,
    //    [Description("公共交通")]
    //    公共交通 = 2,
    //    [Description("步行")]
    //    步行 = 3
    //}

    //#endregion

    #endregion

    #region 一卡通

    public enum CardType
    {
        [Description("长期卡")]
        CT_长期卡 = 1,
        [Description("临时卡")]
        CT_临时卡 = 2,
    }

    public enum CardStatus
    {
        [Description("未开卡")]
        CS_未开卡 = 1,
        [Description("使用中")]
        CS_使用中 = 2,
        [Description("已挂失")]
        CS_已挂失 = 3,
        [Description("已注销")]
        CS_已注销 = 4,
    }

    //流水操作类型
    public enum LiuShuiOpType
    {
        [Description("充值")]
        OP_充值 = 1,
        [Description("消费")]
        OP_消费 = 2,
        [Description("退款")]
        OP_退款 = 3,
        [Description("补贴")]
        OP_补贴 = 4,
        [Description("挂失")]
        OP_挂失 = 5,
        [Description("解挂")]
        OP_解挂 = 6,
        [Description("开卡")]
        OP_开卡 = 7,
        [Description("补卡")]
        OP_补卡 = 8,
        [Description("注销")]
        OP_注销 = 9,
    }

    //设备类型
    public enum DeviceType
    {
        [Description("一卡通后台")]
        Dev_一卡通后台 = 1,
        [Description("消费机")]
        Dev_消费机 = 2,
        [Description("水控机")]
        Dev_水控机 = 3
    }

    //消费机型号
    public enum XFJXHType
    {
        [Description("ZKT_CM20")]
        XFJ_ZKT_CM20 = 1,
        [Description("ZKT_CM50")]
        XFJ_ZKT_CM50 = 2,
    }

    //消费机State流水操作类型
    public enum LiuShuiPosOpType
    {
        [Description("累计补贴")]
        BT_累计补贴 = 0,
        [Description("清零补贴")]
        BT_清零补贴 = 1,
        [Description("正常消费")]
        BT_消费 = 2,
        [Description("纠错")]
        BT_纠错 = 9,
    }

    //补贴领取状态
    public enum LiuShuiBTLQType
    {
        [Description("未下发")]
        LQ_未下发 = 0,
        [Description("已下发")]
        LQ_已下发 = 1,
        [Description("已领取")]
        LQ_已领取 = 2,
    }

    //消费机用途
    public enum XFJYTType
    {
        [Description("补贴")]
        YT_补贴 = 1,
        [Description("食堂")]
        YT_食堂 = 2,
        [Description("超市")]
        YT_超市 = 3,
    }

    #endregion


}
